from public.action import *
from public.business import *
from public.testData import *
from public.tools import *
import time

testCase = "DBshop010_退货处理_线下支付"
zfmc="支付宝"
xm="大天才"
zh="123456789"

reason="7天无理由"
"""
用例标题：购物流程-退货处理
用例作者：雷琼
步骤：
1.登录前台页面，线下支付下单
2.登录后台发货
3.前台点击用户中心
4.点击退货申请
5.点击 点此申请退货
6.输入订单编号、点击查询
7.退款方式选择 退款到第三方支付
8.输入支付名称、姓名、账号
9.退货原因填写“7天无理由”，点击申请退货
10.点击确定
11.登录后台点击处理退货，退货处理“同意退货”，退款金额输入订单总金额，处理意见“同意”。
12.提交处理结果。
13.回到前台界面，点击“用户中心”，退货申请界面，查看退款成功
14.登录前台查看是否退货成功
"""
# 打开网站登录
firefox=openBrowser(url)
DBshopLogin(firefox,userName,password)
# 搜索框输入“小米”，点击搜索
firefox.find_element_by_xpath("//input[@name='keywords']").send_keys("小米")
firefox.find_element_by_xpath("//input[@type='submit']").click()
# 点击小米手机图片
firefox.find_element_by_link_text("小米Mix3 全网通版 8GB+128GB 黑色 磁动力滑盖全面屏").click()
# 跳转到新页面操作
switchWindow(firefox,2)
# 点击加入购物车
firefox.find_element_by_id("add_cart_submit").click()
# 点击去购物车结算
firefox.find_element_by_link_text("去购物车结算").click()
firefox.find_element_by_link_text("去结算").click()
firefox.find_element_by_xpath("//input[@value='下一步']").click()
# 支付方式选择"线下支付",点击确认订单
firefox.find_element_by_xpath('//input[@value="xxzf"]').click()
firefox.find_element_by_xpath('//input[@value="确认订单"]').click()
# 保存订单号
orderID=firefox.find_element_by_xpath('(//font[@color="color:#ED145B"])[2]').text
rootpath=get_pro_rootpath()
writeFile(rootpath+"\public\order-th.txt",orderID)
# 点击马上支付,输入"支付凭证信息","线下支付宝支付",点击提交支付凭证按钮
firefox.find_element_by_xpath('//input[@value="马上去支付"]').click()
firefox.find_element_by_id('state_info').send_keys('线下支付宝支付')
firefox.find_element_by_xpath('//button[text()="提交支付凭证"]').click()

# 打开后台，登录管理员账号
firefox.get(urlAdmin)
DBshopLoginAdmin(firefox)
# 点击销售管理-订单管理
DBshopEnterMenu2(firefox,"销售管理","订单管理")
# 在订单号输入刚刚保存的订单
firefox.find_element_by_xpath("(//input[@name='order_sn'])[1]").send_keys(orderID)
# 点击搜索
firefox.find_element_by_xpath("(//button[@class='btn btn-small btn-primary'])[1]").click()
# 点击编辑查看，点击付款操作
firefox.find_element_by_link_text("编辑查看").click()
firefox.find_element_by_link_text('付款操作').click()
# # 付款状态选择已付款，操作说明填写"已在支付宝账号中收到款项",点击提交保存按钮
firefox.find_element_by_xpath('//option[text()="已付款"]').click()
firefox.find_element_by_id('state_info').send_keys('已在支付宝账号中收到款项')
#点击提交保存按钮
firefox.find_element_by_xpath('//button').click()
# 点击发货操作
firefox.find_element_by_link_text("发货操作").click()
# 输入快递单号
firefox.find_element_by_xpath("//input[@name='express_number']").send_keys(KDnumber)
firefox.find_element_by_id("state_info").send_keys(goodsmessage)
# 点击发货
firefox.find_element_by_xpath("//button").click()

# 打开前台页面
firefox.get(url)
# 点击用户中心、点击退货申请
firefox.find_element_by_link_text("用户中心").click()
firefox.find_element_by_link_text("退货申请").click()
firefox.find_element_by_link_text("点此申请退货").click()
# 输入订单编号、点击查询
firefox.find_element_by_id("order_sn").send_keys(orderID)
firefox.find_element_by_id("search-order").click()
time.sleep(2)
# 选择退款第三方账户，
firefox.find_element_by_xpath("//input[@value='3']").click()
firefox.find_element_by_id("pay_name").send_keys(zfmc)
firefox.find_element_by_id("pay_user_name").send_keys(xm)
firefox.find_element_by_id("pay_account").send_keys(zh)
# 退货原因填写“7天无理由”，点击申请退货
firefox.find_element_by_id("refund_info").send_keys(reason)
firefox.find_element_by_xpath("//button[text()='申请退货']").click()
time.sleep(5)
firefox.switch_to.alert.accept()

# 进入后台，点击销售管理-订单管理
firefox.get(urlAdmin)
DBshopEnterMenu2(firefox,"销售管理","退货管理")
# 输入订单编号
firefox.find_element_by_xpath("//input[@name='order_sn']").send_keys(orderID)
# 或者退款方式选择退款到第三方支付
# firefox.find_element_by_xpath("//option[text()='退款到第三方支付']").click()
firefox.find_element_by_xpath("//button").click()
firefox.find_element_by_link_text("处理退货").click()
# 点击同意退货
firefox.find_element_by_xpath("//option[text()='同意退货']").click()
# 获取订单总金额
s=firefox.find_element_by_xpath("//font[contains(text(),'订单总额')]").text
l="订单总额:￥ "
price=reGetString(s,l)
# 输入退货总金额
firefox .find_element_by_id("refund_price").clear()
firefox .find_element_by_id("refund_price").send_keys(price)
# 输入同意
firefox.find_element_by_id("re_refund_info").send_keys("同意")
# 点击提交处理结果
firefox.find_element_by_xpath("//button").click()

# 打开前台网页,登录
firefox.get(url)
# 点击用户中心、点击退货申请
firefox.find_element_by_link_text("用户中心").click()
firefox.find_element_by_link_text("退货申请").click()
# 输入订单编号,点击搜索
firefox.find_element_by_xpath("//input[@placeholder='输入订单编号']").send_keys(orderID)
firefox.find_element_by_xpath("//button[text()='搜索']").click()

# 断言

try:
    firefox.find_element_by_xpath("//td[text()='退款成功']")
    writeLog("%s 测试通过"%testCase)
except:
    writeLog("%s 测试失败" % testCase)
    getPhoto(firefox)
firefox.quit()